package com.gjintel.business.proj.service;

import java.util.List;

import com.gjintel.business.proj.model.ComposeIdPK;
import com.gjintel.business.proj.model.DepositReturn;
import com.gjintel.sdk.base.dao.Page;
import com.gjintel.sdk.base.service.IBaseService;

/**
 *保证金入账明细 
 * @author wei
 *
 */
public interface IDepositReturnService  extends IBaseService {
	
	/**
	 * 根据项目id和投标人单位名称
	 * @param projId
	 * @param companyName -->RegisterUser.LoginName
	 * @return
	 */
	public DepositReturn getDepositReturnByProjIdAndCompanyName(String projId,String companyName);
	
	/**
	 * 根据projectId 查询保证金列表
	 * @author shy
	 * @param projectId
	 */
	public List<DepositReturn> getDepositReturnList(String projectId);
	
	/**
	 * 根据CompanyName 获取投标人退还信息;
	 * @author shy
	 * @param loginName
	 */
	public DepositReturn getDepositReturn(String loginName,String projectId);
	
	/**
	 * 根据projectId 获取未操作的退款人信息
	 * @author shy
	 * @param projectId
	 */
	public List<DepositReturn> getUnOptList(String projectId,int depositType);
	
	/**
	 * 根据projectId 获取所有退款人信息
	 * @author shy
	 * @param projectId
	 */
	public List<DepositReturn> getReturnList(String projectId,int depositType);
	
	
	/**
	 * @description 获取履约保证金
	 * @param project
	 * @param winningId
	 * @param depositType
	 * @return
	 */
	
	public List<DepositReturn> getExcuteDeposit(String projectId,String winningId,Integer depositType);
	
	/**
	 * @description 获取履约保证金list
	 * @param project
	 * @param winningId
	 * @param depositType
	 * @return
	 */
	
	public List<DepositReturn> getExcuteDepositList(String projectId,Integer depositType,Page page);

	/**
	 * @description 获取履约保证金
	 * @param depositType
	 * @return
	 */

	public DepositReturn getExcuteDeposit(String projectId,Integer depositType);


	/**
	 * 根据交易流水号获取保证金对象
	 * @param HstSeqNum
	 * @return
	 */
	public DepositReturn getDepositListByHstSeqNum(String HstSeqNum);

	/**
	 * 如果银行那边修改用户名称，更新保证金对象联合主键，删除原有保证金对象
	 */
	public DepositReturn updateDepositReturnPK(DepositReturn dr,ComposeIdPK composeIdPK);

		
}
